//
//  AppDataConversionTool.h
//  YLLottery
//
//  Created by Apple on 2017/9/29.
//  Copyright © 2017年 Apple. All rights reserved.
//  数据转换工具

#import <Foundation/Foundation.h>
#import <Mantle/Mantle.h>

@interface AppDataConversionTool : NSObject
//不可用方法
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)new NS_UNAVAILABLE;

//初始化
+ (instancetype)shareInstance;

/**
 *  字典转模型
 *
 *  @param soureDictionary       字典
 *  @param targetClass 模型类型
 *
 *  @return 模型
 */
- (id)convertWithDictionary:(NSDictionary *)soureDictionary ToModel:(Class)targetClass;

/**
 *  模型转字典
 *
 *  @param model 模型
 *
 *  @return 字典
 */
- (NSDictionary *)convertWithModelToDictionary:(id<MTLJSONSerializing>)model;

/**
 *  模型转JSON字符串
 *
 *  @param model 模型类型
 *
 *  @returnJSON字符串
 */
- (NSString *)convertWithModelToJSONString:(id<MTLJSONSerializing>)model;

/**
 *  JSON字符串转字典
 *
 *  @param JSONString JSON字符串
 *
 *  @return 字符串字典
 */
- (NSDictionary *)convertWithJSONStringToJSON:(NSString *)JSONString;


/**
 *  JSON字符串转模型
 *
 *  @param JSONString JSON字符串
 *  @param modelClass 模型类型
 *
 *  @return 模型
 */
- (id)convertWithJSONString:(NSString *)JSONString ToModel:(Class)modelClass;



/**
 *  JSON数组转化成模型数组
 *
 *  @param JSONArray  JSON数组
 *  @param modelClass 模型数组
 */
- (id)convertWithJSONArray:(NSArray *)JSONArray ToModelArray:(Class)modelClass;



/**
 模型数组转化成JSON字符串
 
 @param modelArray 模型数组
 @return JSON字符串
 */
-(NSString *)convertWithModelArrayToJSONString:(NSArray<MTLJSONSerializing> *)modelArray;

@end
